#include "Types.h"
#include "Util.h"

float Util::NextFloat(void)
{
    return rand()/(float)RAND_MAX;
}

Vector4 Util::NextVector4(void)
{
    return Vector4(Util::NextFloat(), Util::NextFloat(), Util::NextFloat(), Util::NextFloat());
}

Vector4 Util::NextVector4(Vector4 minv, Vector4 maxv)
{
    return Util::Mult(Util::NextVector4(), (maxv - minv)) + minv;
}

Vector4 Util::Mult(Vector4 v1, Vector4 v2)
{
    return Vector4(v1.x * v2.x, v1.y * v2.y, v1.z * v2.z, v1.w * v2.w);
}

float Util::Distance(Vector4 v1, Vector4 v2)
{
    Vector4 d = v2 - v1;
    return sqrt(d.x * d.x + d.y * d.y + d.z * d.z);
}
